package cn.b.sky.mes.mm.service;

import java.util.List;

import cn.b.sky.mes.mm.model.DistributionTriggerMode;
import cn.b.sky.mes.mm.model.condition.DistributionTriggerModeCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * 
 * <strong>Title : DistributionTriggerModeService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.service<br></strong>
 * <strong>Description : </strong>配送需求触发策略业务接口<br> 
 * <strong>Create on : 2016年9月9日 下午1:22:53<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人|修改日期|修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface DistributionTriggerModeService {
  /**
   * 
   * <strong>Title : selectDistributionTriggerModeByCondition<br></strong>
   * <strong>Description : </strong>分页查询配送需求触发策略<br> 
   * <strong>Create on : 2016年9月9日 上午11:20:25<br></strong>
   * <p>
   * @param distributionTriggerModeCondition
   * @return
   * List<DistributionTriggerMode>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<DistributionTriggerMode> selectDistributionTriggerModeByCondition(DistributionTriggerModeCondition distributionTriggerModeCondition);
  
  /**
   * 
   * <strong>Title : selectDistributionTriggerModeCount<br></strong>
   * <strong>Description : </strong>查询配送需求触发策略数量<br> 
   * <strong>Create on : 2016年9月9日 上午11:22:03<br></strong>
   * <p>
   * @param distributionTriggerModeCondition
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectDistributionTriggerModeCount(DistributionTriggerModeCondition distributionTriggerModeCondition);
  
  /**
   * 
   * <strong>Title : selectDistributionTriggerMode<br></strong>
   * <strong>Description : </strong>查询配送需求触发策略<br> 
   * <strong>Create on : 2016年9月9日 上午11:23:26<br></strong>
   * <p>
   * @param siteCode
   * @param distributionTriggerModeCode
   * @return
   * DistributionTriggerMode
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  DistributionTriggerMode selectDistributionTriggerMode(String siteCode,String distributionTriggerModeCode);
  
  /**
   * 
   * <strong>Title : insertDistributionTriggerMode<br></strong>
   * <strong>Description : </strong>新增配送需求触发策略<br> 
   * <strong>Create on : 2016年9月9日 上午11:24:06<br></strong>
   * <p>
   * @param DistributionTriggerMode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertDistributionTriggerMode(DistributionTriggerMode DistributionTriggerMode);
  
  /**
   * 
   * <strong>Title : updateDistributionTriggerMode<br></strong>
   * <strong>Description : </strong>更新配送需求触发策略<br> 
   * <strong>Create on : 2016年9月9日 上午11:24:48<br></strong>
   * <p>
   * @param DistributionTriggerMode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateDistributionTriggerMode(DistributionTriggerMode DistributionTriggerMode);
  
  /**
   * 
   * <strong>Title : deleteDistributionTriggerMode<br></strong>
   * <strong>Description : </strong>删除配送需求触发策略<br> 
   * <strong>Create on : 2016年9月9日 上午11:25:26<br></strong>
   * <p>
   * @param siteCode
   * @param distributionTriggerModeCode
   * BatchJobReport
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteDistributionTriggerMode(String siteCode, String distributionTriggerModeCode);
  
  /**
   * 
   * <strong>Title : selectDistributionTriggerModeByLockFlag<br></strong>
   * <strong>Description : </strong>查询非锁定状态下所有配送需求触发策略<br> 
   * <strong>Create on : 2016-9-10 下午3:10:14<br></strong>
   * <p>
   * @param siteCode
   * @param lockFlag
   * @return
   * List<DistributionTriggerMode>
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<DistributionTriggerMode> selectDistributionTriggerModeByLockFlag(String siteCode,Integer lockFlag);
}
